package Algorithm.IntegratedPractice;

/**
 * ClassName:PracticeText003
 * Package:Algorithm.IntegratedPractice
 * Description:
 *
 * @Author:ZhangXin
 * @Create2023/2/5-18:07
 * @Version:v1.0
 */
public class PracticeText003 {
    /*
     * 有一堆桃子,猴子第一天吃了其中的一半,并多吃了一个!以后每天猴子都吃当前剩下来的一半,然后
     * 再多吃一个,第10天的时候(还没吃),发现只剩下一个桃子了,请问最初总共多少个桃子?*/
    //day10:1     day9:  (day10+1)*2     day8:(day9+1)*2
    public static void main(String[] args) {
        //反向递归
        //规律:每天的桃子数量都是后一天的数量加1,乘2
        System.out.println("最初总共" + getNumber(1) + "个桃子");

    }

    private static int getNumber(int day) {
        if (day < 0 || day > 11) {
            return -1;
        }
        if (day == 10) {
            return 1;
        }

        return (getNumber(day + 1) + 1) * 2;
    }
}
